Ink minimizing profile making tool

ABSTRACT

An International Color Consortium (ICC) profile making tool includes a regression module to establish a dependency between a profile connection space (PCS) and a device color space and an optimization module to generate a first output profile based on an ink minimization mode and a second output profile based on a high accuracy mode.

FIELD OF THE INVENTION

This invention relates generally to the field of printing systems. Moreparticularly, the invention relates to managing and controlling inkusage in a color printing system.

BACKGROUND

Growth in color management has resulted in an increase in softwarepackages that are used to generate International Color Consortium (ICC)profiles. ICC profiles describe color attributes of a particular deviceor viewing requirement by defining a mapping between a source or targetcolor space and a profile connection space (PCS), which is either CIELAB(L*a*b*) or CIEXYZ.

An ICC profile also plays an important role in ink consumption at aprinter driver, or third party software, since the profile provides themeans of determining CMYK intensities for each point in a given image.The minimization of ink usage at printers has been an important andchallenging problem, which has had a significant economic impact.Current approaches to minimizing ink in ICC profiles are based onlimiting a peak coverage or black removal heuristics. However, the inksaving efficiency of such mechanisms is quite limited.

Therefore, what is desired is an ICC profile mechanism that provides forefficient ink minimization.

SUMMARY

In one embodiment, an ICC profile tool is disclosed. An InternationalColor Consortium (ICC) profile tool includes a regression module toestablish a dependency between a profile connection space (PCS) and adevice color space and an optimization module to generate a first outputprofile based on an ink minimization mode and a second output profilebased on a high accuracy mode.

In another embodiment, a method is disclosed. The method includesperforming a regression method to establish a dependency between aprofile connection space (PCS) and a device color space and performingan optimization method to generate a first ICC profile based on an inkminimization mode and a second ICC profile based on a high accuracymode.

DESCRIPTION OF THE DRAWINGS

A better understanding of the present invention can be obtained from thefollowing detailed description in conjunction with the followingdrawings, in which:

FIG. 1 illustrates one embodiment of an ICC profile tool;

FIG. 2 illustrates one embodiment of a regression model;

FIG. 3 illustrates one embodiment of an optimization module; and

FIG. 4 illustrates one embodiment of a computer system.

DETAILED DESCRIPTION

An ICC profile tool is described. In the following description, for thepurposes of explanation, numerous specific details are set forth inorder to provide a thorough understanding of the present invention. Itwill be apparent, however, to one skilled in the art that the presentinvention may be practiced without some of these specific details. Inother instances, well-known structures and devices are shown in blockdiagram form to avoid obscuring the underlying principles of the presentinvention.

Reference in the specification to “one embodiment” or “an embodiment”means that a particular feature, structure, or characteristic describedin connection with the embodiment is included in at least one embodimentof the invention. The appearances of the phrase “in one embodiment” invarious places in the specification are not necessarily all referring tothe same embodiment.

FIG. 1 illustrates one embodiment of an ICC profile tool 100. Profiletool 100 is a tool for making, editing and assessing ICC profiles.According to one embodiment, ICC profile tool 100 generates an ICCoutput profile with respect to a set of parameter values that are passedto a point operation optimization algorithm.

In such an embodiment, a multitude of different ICC profiles, dependingon a parameter setup, may be produced for a given printer that addressesa trade-off between print quality and amount of ink required. In afurther embodiment, the output profile may be applied to any ink jet orEP printer.

According to one embodiment, tool 100 receives as input from a user: ameasurement file, type of optimization and color lookup table (CLUT)resolution. CLUT resolution determines how many evenly distributedpoints will be used to represent a grid that spans an entire deviceindependent color space (e.g., typical values 9, 25, or 33).

The measurement file may be a standard print charts, e.g., ECI2002V,printed on a target printer and measured in XYZ or the CIE 1976 L*a*bcolor spaces. In one embodiment, the measurement file is obtained by aparticular printer printing out the chart, which is measured using aspectrophotometer. As a result, the set of points (called sample set) inL*a*b is obtained with known responses in the device color space.

The type of optimization includes an ink minimizing mode and a highaccuracy mode. The ink minimizing mode enables a user to establish alimit as to how much a reproduced color (e.g., the result of inkminimization) can deviate from the requested color in the deviceindependent color space. In one embodiment, a user specifies a level ofprint quality that is acceptable in the ink minimizing mode. The highaccuracy mode ensures that color error will be minimized between therequested and reproduced color regardless of the amount of ink consumed.In one embodiment each mode, an ICC profile is generated that includesan associated set of CLUTs 150 that can be used in the color managementsystem of a given printer to implement the respective mode.

According to one embodiment, tool 100 includes regression module 120 andoptimization module 130. The regression module performs a method thatestablishes dependency between L*a*b and device color space (e.g.,CMYK). In one embodiment, the regression method avoids contouringeffects on images.

Regression Model

As a first step, regression module 120 retrieves the sample set derivedfrom the measurement file. In one embodiment, the above-describedfunctional dependency between L*a*b* and CMYK is established usingpolynomials. For example for the first degree polynomial degree, thefunctional dependency, denoted as F(CMY K)→LAB, can be written as:

$\begin{bmatrix}b \\a \\L\end{bmatrix} = {\begin{bmatrix}\beta_{{const}\; 1} & \beta_{11} & \beta_{12} & \beta_{13} & \left. \beta_{14} \right\rbrack \\\beta_{{const}\; 2} & \beta_{21} & \beta_{22} & \beta_{23} & \beta_{24} \\\beta_{{const}\; 3} & \beta_{31} & \beta_{32} & \beta_{33} & \beta_{34}\end{bmatrix} \times \begin{bmatrix}C \\M \\Y \\K\end{bmatrix}}$

where (3×5) β matrix contains the regression coefficients.

The computation of these coefficients is based on the closed formsolution of the least square error minimization for the subset of samplepoints. This subset of sample points is selected individually for eachnode in the constructed BtoA CLUT. This concept of locality is veryimportant as F(CMY K)→LAB may vary from one region of printer's gamut toanother.

Suppose that the given subset of sample points is composed of N points,each point i, 1≦i≦N is specified by L_(i)a_(i)b_(i) coordinates in Labspace and C_(i)M_(i)Y_(i)K_(i) in CMYK space. The regression model forthe first degree polynomial is shown in FIG. 2. Let {circumflex over(b)}_(i), â_(i), and {circumflex over (L)}_(i) denote the b, a and Lcomponents of the right hand side vector in FIG. 2, computed when βcoefficients are found.

The least square regression implies that β coefficients are determinedsuch that

$\begin{matrix}\sqrt{\sum\limits_{i = 1}^{N}\left\lbrack {\left( {b_{i} - {\hat{b}}_{i}} \right)^{2} + {\sum\limits_{i = 1}^{N}\left( {a_{i} - {\hat{a}}_{i}} \right)^{2}} + {\sum\limits_{i = 1}^{N}\left( {L_{i} - {\hat{L}}_{i}} \right)^{2}}} \right\rbrack} & \left( {{Equation}\mspace{20mu} 1} \right)\end{matrix}$

is minimized. It is very important to note that this is a least squaresoptimization of Euclidean distances between actual sample points in Labspace and corresponding mappings from CMYK space. To see this, Equation1 can be written as

$\begin{matrix}{\sqrt{\sum\limits_{i = 1}^{N}\begin{bmatrix}{\left( {b_{i} - {\hat{b}}_{i}} \right)^{2} +} \\{\sum\limits_{i = 1}^{N}{\left( {a_{i} - {\hat{a}}_{i}} \right)^{2}{\sum\limits_{i = 1}^{N}\left( {L_{i} - {\hat{L}}_{i}} \right)^{2}}}}\end{bmatrix}} = {\sqrt{\sum\limits_{i = 1}^{N}\left( \sqrt{\begin{matrix}{\left( {b_{i} - {\hat{b}}_{i}} \right)^{2} +} \\{{\sum\limits_{i = 1}^{N}\left( {a_{i} - {\hat{a}}_{i}} \right)^{2}} + {\sum\limits_{i = 1}^{N}\left( {L_{i} - {\hat{L}}_{i}} \right)^{2}}}\end{matrix}} \right)^{2}} = \sqrt{\sum\limits_{i = 1}^{N}\Delta_{i}^{2}}}} & \left( {{Equation}\mspace{20mu} 2} \right)\end{matrix}$

By these means, our regression model resolves the common pitfall incolor science based on the fact that the least squares optimization isapplied to find β coefficients separately for L, a and b. As a result,that approach does not minimize

$\sqrt{\sum\limits_{i = 1}^{N}\Delta_{1}^{2}}.$

Let V (C M Y K) be a vector formed with all terms of k-degree polynomialconstructed from the elements of [C M Y K] vector. In general, the F(CMYK)→LAB can be expressed as [L a b]=[3×length of V(C M Y K)] β matrix×V(CM Y K). In one embodiment, first degree polynomials were used in profiletool 100 for subsets with a small number of sample points, seconddegree—for other subsets.

Optimization Setup

Referring back to FIG. 1, once the regression method has been performedat regression module 120 control is forwarded to optimization module130. FIG. 3 illustrates one embodiment of an optimization module 130.Optimization module 130 includes two modules to perform optimizationsetups for non-linear optimization. These modules include ink minimizingmodule 310 and high accuracy module 320. However, in some embodiments,an ink limit may be applied at both modules.

Let [lab] denote a node in the constructed BtoA CLUT. Once the localrelation F(CMY K)→LAB is established node for node [lab], theoptimization problem can be formulated mathematically at ink savingmodule 310 and high accuracy module 320. The ink saving mode isformulated as:

minimize C+M+Y+K

subject to

||F(CMY K)−[lab]||≦Δ_(limit);

C+M+Y+K≦Ω _(limit);

while the high accuracy mode is formulated as:

minimize|F(CMY K)−[lab]||

subject to

C+M+Y+K≦Ω _(limit);

0≦C≦100; 0≦M≦100; 0≦Y≦100; 0≦K≦100,

where Δ_(limit) and Ω_(limit) specify the maximum deviation from node[lab] in L*a*b* space and maximum ink coverage, respectively.

In these formulations, the non-linear element ||F(CMY K)−[lab]||provides a qualitative measure of deviation from node [lab]. In oneembodiment, an additional constraint limiting ink coverage is providedto the set of constraints to prevent paper distortion failures (e.g.,curl, cockle, and tearing). In a further embodiment, the formulationscan be modified to address the specific details of optimization. Forexample C+M+Y+K can be replaced with a weighted sump_(c)×C+p_(m)×M+p_(k)×K, where each coefficient p represents a cost ofthe corresponding ink.

According to one embodiment, a local optimal solution can be found forthe non-linear constrained optimization modes in a finite number ofiterations by applying mathematical procedures based on the projectedgradient methods, penalty function, etc. In another embodiment,commercially available third party optimization packages, e.g., Matlab,Lingo, can be used for this purpose. In addition, a variety of globaloptimization iterative heuristics, e.g., Genetic Algorithm, SimulatedAnnealing, can be adapted for this purpose.

System

FIG. 4 illustrates a computer system 400 on which ICC profile tool 100may be implemented. Computer system 400 includes a system bus 420 forcommunicating information, and a processor 410 coupled to bus 420 forprocessing information. According to one embodiment, processor 410 isimplemented using one of the multitudes of ARM™ microprocessors.Nevertheless one of ordinary skill in the art will appreciate that otherprocessors may be used.

Computer system 400 further comprises a random access memory (RAM) orother dynamic storage device 425 (referred to herein as main memory),coupled to bus 420 for storing information and instructions to beexecuted by processor 410. Main memory 425 also may be used for storingtemporary variables or other intermediate information during executionof instructions by processor 410. Computer system 400 also may include aread only memory (ROM) and or other static storage device 426 coupled tobus 420 for storing static information and instructions used byprocessor 410.

A data storage device 425 such as a magnetic disk or optical disc andits corresponding drive may also be coupled to computer system 400 forstoring information and instructions. Computer system 400 can also becoupled to a second I/O bus 450 via an I/O interface 430. A plurality ofI/O devices may be coupled to I/O bus 450, including a display device424, an input device (e.g., an alphanumeric input device 423 and or acursor control device 422). The communication device 421 is foraccessing other computers (servers or clients) via external data network170. The communication device 421 may comprise a modem, a networkinterface card, or other well-known interface device, such as those usedfor coupling to Ethernet, token ring, or other types of networks.

Embodiments of the invention may include various steps as set forthabove. The steps may be embodied in machine-executable instructions. Theinstructions can be used to cause a general-purpose or special-purposeprocessor to perform certain steps. Alternatively, these steps may beperformed by specific hardware components that contain hardwired logicfor performing the steps, or by any combination of programmed computercomponents and custom hardware components.

Elements of the present invention may also be provided as amachine-readable medium for storing the machine-executable instructions.The machine-readable medium may include, but is not limited to, floppydiskettes, optical disks, CD-ROMs, and magneto-optical disks, ROMs,RAMs, EPROMs, EEPROMs, magnetic or optical cards, propagation media orother type of media/machine-readable medium suitable for storingelectronic instructions. For example, the present invention may bedownloaded as a computer program which may be transferred from a remotecomputer (e.g., a server) to a requesting computer (e.g., a client) byway of data signals embodied in a carrier wave or other propagationmedium via a communication link (e.g., a modem or network connection).

The above-described ICC profile making tool designed ink jet and EPprinters minimizes the total cost (or volume) of CMYK required toproduce images with a requested perceptual print quality. The ICCprofile making tool is capable of producing high accuracy ICC profilesand ICC profiles with minimized ink usage at user specified level ofprint quality. Further, the ICC output profiles produced with the toolare compliant with ICC.1:2004-10, profile version 4.2.0.0 specification.The CLUTs in these profiles are computed utilizing a point operationmethod based on the specifically designed regression andstate-of-the-art non-linear constrained optimization techniques.

Throughout the foregoing description, for the purposes of explanation,numerous specific details were set forth in order to provide a thoroughunderstanding of the invention. It will be apparent, however, to oneskilled in the art that the invention may be practiced without some ofthese specific details. Accordingly, the scope and spirit of theinvention should be judged in terms of the claims which follow.

1. An International Color Consortium (ICC) profile tool comprising: aregression module to establish a dependency between a profile connectionspace (PCS) and a device color space; and an optimization module togenerate a first output profile based on an ink minimization mode and asecond output profile based on a high accuracy mode.
 2. The profile toolof claim 1 wherein the ink minimization mode minimizes an amount of inkused when performing a print job via the first output profile.
 3. Theprofile tool of claim 2 wherein the ink minimization mode enables aprofile tool user to establish a limit as to how much a reproduced colorcan deviate from a requested color in the PCS.
 4. The profile tool ofclaim 3 wherein the user provides an input to the profile toolspecifying a level of print quality that is acceptable in the inkminimization mode.
 5. The profile tool of claim 2 wherein the highaccuracy mode ensures that color error will be minimized between therequested and reproduced color regardless of the amount of ink consumed.6. The profile tool of claim 1 wherein the first output profilecomprises a first set of color lookup tables (CLUTs) and the secondoutput profile comprises a second set of CLUTs.
 7. The profile tool ofclaim 1 wherein the profile tool receives a measurement file as aninput.
 8. The profile tool of claim 7 wherein the measurement file isgenerated by measuring a print chart using a spectrophotometer.
 9. Theprofile tool of claim 8 wherein the profile tool generates a sample setin the PCS with known responses in the device color space from themeasurement file.
 10. The profile tool of claim 9 wherein the regressionmodule retrieves the sample set to establish the dependency between thePCS and the device color space.
 11. The profile tool of claim 1 whereinthe profile tool receives a color lookup table (CLUT) resolution is aninput to determine a number of evenly distributed points that will beused to represent a grid that spans the PCS.
 12. A method comprising:performing a regression method to establish a dependency between aprofile connection space (PCS) and a device color space; and performingan optimization method to generate a first International ColorConsortium (ICC) profile based on an ink minimization mode and a secondICC profile based on a high accuracy mode.
 13. The method of claim 12further comprising receiving an input specifying a level of printquality that is acceptable in the ink minimization mode.
 14. The methodof claim 12 further comprising receiving an input establishing a limitas to how much a reproduced color can deviate from a requested color inthe PCS.
 15. The method of claim 12 wherein the first ICC profilecomprises a first set of color lookup tables (CLUTs) and the second ICCprofile comprises a second set of CLUTs.
 16. The method of claim 12further comprising receiving a measurement file.
 17. The method of claim16 further comprising generating a sample set in the PCS with knownresponses in the device color space from the measurement file.
 18. Themethod of claim 17 wherein the regression module retrieves the sampleset to establish the dependency between the PCS and the device colorspace.
 19. The profile tool of claim 12 further comprising receiving acolor lookup table (CLUT) resolution to determine a number of evenlydistributed points that will be used to represent a grid that spans thePCS.
 20. An article of manufacture comprising a computer-readable mediumhaving associated data, wherein the data, when accessed, results in amachine performing operations comprising: performing a regression methodto establish a dependency between a profile connection space (PCS) and adevice color space; and performing an optimization method to generate afirst International Color Consortium (ICC) profile based on an inkminimization mode and a second ICC profile based on a high accuracymode.